控件显示图像或图像数据 您所在的位置:网站首页 CStatic + CImage 实现简单的图片显示控件 控件显示图像或图像数据

控件显示图像或图像数据

2024-06-24 21:26| 来源: 网络整理| 查看: 265

将图片显示到控件上:

CImage image; //创建图片类 image.Load("C:\\Data\\MatlabImages\\pseudo3d.png"); //根据图片路径加载图片 CRect rect;//定义矩形类 int cx = image.GetWidth();//获取图片宽度 int cy = image.GetHeight();//获取图片高度 GetDlgItem(IDC_STATIC_SHOW)->GetWindowRect(&rect);//将窗口矩形选中到picture控件上 ScreenToClient(&rect);//将客户区选中到Picture控件表示的矩形区域内 GetDlgItem(IDC_STATIC_SHOW)->MoveWindow(rect.left, rect.top, cx, cy, TRUE);//将窗口移动到Picture控件表示的矩形区域 CWnd *pWnd = GetDlgItem(IDC_STATIC_SHOW);//获得pictrue控件窗口的句柄 pWnd->GetClientRect(&rect);//获得pictrue控件所在的矩形区域 CDC *pDC = pWnd->GetDC();//获得pictrue控件的DC image.Draw(pDC->m_hDC, rect); //将图片画到Picture控件表示的矩形区域 ReleaseDC(pDC);//释放picture控件的DC

将Mat数据显示到控件上去:

Mat image = imread(“D:\MyTest.bmp”, 1); ShowMatImgToWnd(GetDlgItem(IDC_STATIC_SHOW), image); IDC_STATIC_SHOW为控件ID。

void ShowMatImgToWnd(CWnd* pWnd, Mat img) { if (img.empty()) return; static BITMAPINFO *bitMapinfo = NULL; static bool First = TRUE; if (First) { BYTE *bitBuffer = new BYTE[40 + 4 * 256]; if (bitBuffer == NULL) { return; } First = FALSE; memset(bitBuffer, 0, 40 + 4 * 256); bitMapinfo = (BITMAPINFO *)bitBuffer; bitMapinfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); bitMapinfo->bmiHeader.biPlanes = 1; // 目标设备的级别,必须为1 for (int i = 0; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有